package com.demo.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.demo.entity.SysUser;
import com.demo.entity.vo.SysUserSearchReq;

import java.util.List;

public interface SysUserService extends IService<SysUser> {

    /**
     * 更新用户
     * @param sysUser
     */
    void updateUser(SysUser sysUser);

    /**
     * 登录
     * @param sysUser
     * @return token
     */
    String login(SysUser sysUser);

    /**
     * 退出登录
     * @return
     */
    boolean logout();

    /**
     * 注册用户
     * @param sysUser
     * @return
     */
    Integer register(SysUser sysUser);

    /**
     * 修改密码
     * @param userId
     * @param oriPwd
     * @param newPwd
     */
    void updatePwd(Integer userId,String oriPwd,String newPwd);

    /**
     * 重置密码
     * @param userId
     */
    void resetPwd(Integer userId);

    /**
     * 冻结用户
     * @param userId
     */
    void freezeUser(Integer userId);

    /**
     * 解冻用户
     * @param userId
     */
    void unfreezeUser(Integer userId);

    /**
     * 用户列表
     * @param request
     * @return
     */
    Page<SysUser> userList(SysUserSearchReq request);


    List<SysUser> getUserByRole(Integer roleId);

}